package com.zone.service.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 钥匙组管理对象 zone_mechanical_lock
 * 
 * @author liuyang
 * @date 2025-10-23
 */
public class MechanicalLock extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private String deviceId;

    /** 钥匙编号 */
    @Excel(name = "钥匙编号")
    private String keyCode;

    /** 合计 */
    @Excel(name = "合计")
    private Long totalCount;

    /** 保险柜 */
    @Excel(name = "保险柜")
    private Long safeBox;

    /** 上盖 */
    @Excel(name = "上盖")
    private Long topLid;

    /** 下盖 */
    @Excel(name = "下盖")
    private Long bottomLid;

    /** 钞箱 */
    @Excel(name = "钞箱")
    private Long cashBox;

    /** 撤防卡 */
    @Excel(name = "撤防卡")
    private Long disarmCard;

    /** 机房 */
    @Excel(name = "机房")
    private Long machineRoom;

    /** 监控 */
    @Excel(name = "监控")
    private Long monitoring;

    /** 电箱 */
    @Excel(name = "电箱")
    private Long electricBox;

    /** 查询机 */
    @Excel(name = "查询机")
    private Long queryMachine;

    /** 读卡器 */
    @Excel(name = "读卡器")
    private Long cardReader;

    /** 灯箱 */
    @Excel(name = "灯箱")
    private Long lightSwitch;

    /** 复位匙 */
    @Excel(name = "复位匙")
    private Long resetPosition;

    /** 未知用途 */
    @Excel(name = "未知用途")
    private Long unknownUse;

    /** 其他用途 */
    @Excel(name = "其他用途")
    private Long otherUse;

    /** 配的未试用钥匙 */
    @Excel(name = "配的未试用钥匙")
    private String unusedKeys;

    /** 钥匙串绑定 */
    @Excel(name = "钥匙串绑定")
    private String keyChainBinding;

    /** 区域 */
    @Excel(name = "区域")
    private String area;

    /** 钥匙启用日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "钥匙启用日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activationDate;

    /** 机房钥匙明细 */
    @Excel(name = "机房钥匙明细")
    private String roomKeyDetail;

    /** 钥匙异动日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "钥匙异动日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastActivityDate;

    /** 备用钥匙编号 */
    @Excel(name = "备用钥匙编号")
    private String backupKeyId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDeviceId(String deviceId) 
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId() 
    {
        return deviceId;
    }

    public void setKeyCode(String keyCode) 
    {
        this.keyCode = keyCode;
    }

    public String getKeyCode() 
    {
        return keyCode;
    }

    public void setTotalCount(Long totalCount) 
    {
        this.totalCount = totalCount;
    }

    public Long getTotalCount() 
    {
        return totalCount;
    }

    public void setSafeBox(Long safeBox) 
    {
        this.safeBox = safeBox;
    }

    public Long getSafeBox() 
    {
        return safeBox;
    }

    public void setTopLid(Long topLid) 
    {
        this.topLid = topLid;
    }

    public Long getTopLid() 
    {
        return topLid;
    }

    public void setBottomLid(Long bottomLid) 
    {
        this.bottomLid = bottomLid;
    }

    public Long getBottomLid() 
    {
        return bottomLid;
    }

    public void setCashBox(Long cashBox) 
    {
        this.cashBox = cashBox;
    }

    public Long getCashBox() 
    {
        return cashBox;
    }

    public void setDisarmCard(Long disarmCard) 
    {
        this.disarmCard = disarmCard;
    }

    public Long getDisarmCard() 
    {
        return disarmCard;
    }

    public void setMachineRoom(Long machineRoom) 
    {
        this.machineRoom = machineRoom;
    }

    public Long getMachineRoom() 
    {
        return machineRoom;
    }

    public void setMonitoring(Long monitoring) 
    {
        this.monitoring = monitoring;
    }

    public Long getMonitoring() 
    {
        return monitoring;
    }

    public void setElectricBox(Long electricBox) 
    {
        this.electricBox = electricBox;
    }

    public Long getElectricBox() 
    {
        return electricBox;
    }

    public void setQueryMachine(Long queryMachine) 
    {
        this.queryMachine = queryMachine;
    }

    public Long getQueryMachine() 
    {
        return queryMachine;
    }

    public void setCardReader(Long cardReader) 
    {
        this.cardReader = cardReader;
    }

    public Long getCardReader() 
    {
        return cardReader;
    }

    public void setLightSwitch(Long lightSwitch) 
    {
        this.lightSwitch = lightSwitch;
    }

    public Long getLightSwitch() 
    {
        return lightSwitch;
    }

    public void setResetPosition(Long resetPosition) 
    {
        this.resetPosition = resetPosition;
    }

    public Long getResetPosition() 
    {
        return resetPosition;
    }

    public void setUnknownUse(Long unknownUse) 
    {
        this.unknownUse = unknownUse;
    }

    public Long getUnknownUse() 
    {
        return unknownUse;
    }

    public void setOtherUse(Long otherUse) 
    {
        this.otherUse = otherUse;
    }

    public Long getOtherUse() 
    {
        return otherUse;
    }

    public void setUnusedKeys(String unusedKeys) 
    {
        this.unusedKeys = unusedKeys;
    }

    public String getUnusedKeys() 
    {
        return unusedKeys;
    }

    public void setKeyChainBinding(String keyChainBinding) 
    {
        this.keyChainBinding = keyChainBinding;
    }

    public String getKeyChainBinding() 
    {
        return keyChainBinding;
    }

    public void setArea(String area) 
    {
        this.area = area;
    }

    public String getArea() 
    {
        return area;
    }

    public void setActivationDate(Date activationDate) 
    {
        this.activationDate = activationDate;
    }

    public Date getActivationDate() 
    {
        return activationDate;
    }

    public void setRoomKeyDetail(String roomKeyDetail) 
    {
        this.roomKeyDetail = roomKeyDetail;
    }

    public String getRoomKeyDetail() 
    {
        return roomKeyDetail;
    }

    public void setLastActivityDate(Date lastActivityDate) 
    {
        this.lastActivityDate = lastActivityDate;
    }

    public Date getLastActivityDate() 
    {
        return lastActivityDate;
    }

    public void setBackupKeyId(String backupKeyId) 
    {
        this.backupKeyId = backupKeyId;
    }

    public String getBackupKeyId() 
    {
        return backupKeyId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceId", getDeviceId())
            .append("keyCode", getKeyCode())
            .append("totalCount", getTotalCount())
            .append("safeBox", getSafeBox())
            .append("topLid", getTopLid())
            .append("bottomLid", getBottomLid())
            .append("cashBox", getCashBox())
            .append("disarmCard", getDisarmCard())
            .append("machineRoom", getMachineRoom())
            .append("monitoring", getMonitoring())
            .append("electricBox", getElectricBox())
            .append("queryMachine", getQueryMachine())
            .append("cardReader", getCardReader())
            .append("lightSwitch", getLightSwitch())
            .append("resetPosition", getResetPosition())
            .append("unknownUse", getUnknownUse())
            .append("otherUse", getOtherUse())
            .append("unusedKeys", getUnusedKeys())
            .append("keyChainBinding", getKeyChainBinding())
            .append("area", getArea())
            .append("activationDate", getActivationDate())
            .append("roomKeyDetail", getRoomKeyDetail())
            .append("lastActivityDate", getLastActivityDate())
            .append("backupKeyId", getBackupKeyId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
